﻿Public Class Dparametrizacion

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String, ByVal idProyecto As Int32) As List(Of Eparametrizacion)
        Dim parametrizaciones As List(Of Eparametrizacion) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_parametrizacion_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            parametrizaciones = New List(Of Eparametrizacion)
                            Dim parametrizacion As Eparametrizacion = Nothing
                            Do While dr.Read
                                parametrizacion = New Eparametrizacion( _
                                    dr.GetInt32(dr.GetOrdinal("idParametrizacion")), _
                                    dr.GetString(dr.GetOrdinal("tituloParametrizacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("separacionMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("descPorcentaje")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicPorcentaje")), _
                                    dr.GetInt32(dr.GetOrdinal("ctaIniCuotas")), _
                                    dr.GetInt32(dr.GetOrdinal("saldoCuotas")), _
                                    dr.GetString(dr.GetOrdinal("Estado")), _
                                    dr.GetString(dr.GetOrdinal("fchRegistro")), _
                                    dr.GetString(dr.GetOrdinal("nombreusuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("diasParaPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("idEstado")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoFinanciamiento")))
                                parametrizaciones.Add(parametrizacion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return parametrizaciones
    End Function

    Public Shared Function SeleccionarXId(ByVal descEmpresa As String, ByVal idParametrizacion As Int32) As Eparametrizacion
        Dim parametrizacion As Eparametrizacion = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_parametrizacion_selXId", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idParametrizacion", SqlDbType.Int).Value = idParametrizacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            'parametrizaciones = New Eparametrizacion
                            'Dim parametrizacion As Eparametrizacion = Nothing 'tipo 
                            'Do While dr.Read
                            dr.Read()
                            parametrizacion = New Eparametrizacion( _
                                dr.GetInt32(dr.GetOrdinal("idParametrizacion")), _
                                dr.GetString(dr.GetOrdinal("tituloParametrizacion")), _
                                dr.GetDecimal(dr.GetOrdinal("separacionMonto")), _
                                dr.GetDecimal(dr.GetOrdinal("descPorcentaje")), _
                                dr.GetDecimal(dr.GetOrdinal("ctaInicPorcentaje")), _
                                dr.GetInt32(dr.GetOrdinal("ctaIniCuotas")), _
                                dr.GetInt32(dr.GetOrdinal("saldoCuotas")), _
                                dr.GetString(dr.GetOrdinal("Estado")), _
                                dr.GetString(dr.GetOrdinal("fchRegistro")), _
                                dr.GetString(dr.GetOrdinal("nombreusuario")), _
                                dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                dr.GetInt32(dr.GetOrdinal("diasParaPago")), _
                                dr.GetInt32(dr.GetOrdinal("idFormaPago")), _
                                dr.GetString(dr.GetOrdinal("descProyecto")), _
                                dr.GetString(dr.GetOrdinal("idEstado")), _
                                dr.GetInt32(dr.GetOrdinal("idTpoFinanciamiento")))
                            'parametrizaciones.Add(parametrizacion)
                            'Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return parametrizacion
    End Function
    'Public Shared Function SeleccionarTodoXML(ByVal descEmpresa As String) As System.Xml.XmlReader
    '    Dim cmd As New SqlXmlCommand("Provider=SQLOLEDB;Server=(local);database=EVOLTA; Integrated Security=SSPI") '"usp_vendedor_selXML",
    '    cmd.CommandType = SqlXmlCommandType.Sql
    '    cmd.RootTag = "TvendedorList"
    '    cmd.ClientSideXml = True
    '    cmd.CommandText = "EXEC usp_vendedor_selXML"
    '    Try
    '        Dim dr As System.Xml.XmlReader = cmd.ExecuteXmlReader()
    '        dr.Close()
    '        Return dr
    '    Catch ex As Exception
    '        Throw
    '    End Try
    'End Function
    Public Shared Function SeleccionarXEstado(ByVal descEmpresa As String) As List(Of Evendedor)
        Dim vendedors As List(Of Evendedor) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_vendedor_selXEstado", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            vendedors = New List(Of Evendedor)
                            Dim vendedor As Evendedor = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New Evendedor( _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDcmto")), _
                                    dr.GetString(dr.GetOrdinal("telefono")), _
                                    dr.GetString(dr.GetOrdinal("movil")), _
                                    dr.GetDecimal(dr.GetOrdinal("comisionProforma")), _
                                    dr.GetDecimal(dr.GetOrdinal("comisionSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("comisionVenta")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                vendedors.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return vendedors
    End Function
    Public Shared Function SeleccionarXUsuario(ByVal descEmpresa As String, ByVal idUsuario As Integer) As Evendedor
        Dim vendedor As Evendedor = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_vendedor_selXEstado", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = idUsuario
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then

                            Do While dr.Read
                                vendedor = New Evendedor( _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDcmto")), _
                                    dr.GetString(dr.GetOrdinal("telefono")), _
                                    dr.GetString(dr.GetOrdinal("movil")), _
                                    dr.GetDecimal(dr.GetOrdinal("comisionProforma")), _
                                    dr.GetDecimal(dr.GetOrdinal("comisionSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("comisionVenta")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return vendedor
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pParametrizacion As Eparametrizacion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_parametrizacion_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@tituloParametrizacion", SqlDbType.VarChar, 55).Value = pParametrizacion.tituloParametrizacion
                cmd.Parameters.Add("@separacionMonto", SqlDbType.Decimal, 15, 2).Value = pParametrizacion.separacionMonto
                cmd.Parameters.Add("@descPorcentaje", SqlDbType.Decimal, 15, 2).Value = pParametrizacion.descPorcentaje
                cmd.Parameters.Add("@ctaInicPorcentaje", SqlDbType.Decimal, 15, 2).Value = pParametrizacion.ctaInicPorcentaje
                cmd.Parameters.Add("@ctaIniCuotas", SqlDbType.Int).Value = pParametrizacion.ctaIniCuotas
                cmd.Parameters.Add("@saldoCuotas", SqlDbType.Int).Value = pParametrizacion.saldoCuotas
                cmd.Parameters.Add("@Estado", SqlDbType.VarChar, 1).Value = pParametrizacion.Estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pParametrizacion.idUsuario
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pParametrizacion.idProyecto
                cmd.Parameters.Add("@diasParaPago", SqlDbType.Int).Value = pParametrizacion.diasParaPago
                cmd.Parameters.Add("@idFormaPago", SqlDbType.Int).Value = pParametrizacion.idFormaPago
                cmd.Parameters.Add("@idFinanciamiento", SqlDbType.Int).Value = pParametrizacion.idFinanciamiento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pParametrizacion As Eparametrizacion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_parametrizacion_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idParametrizacion", SqlDbType.Int).Value = pParametrizacion.idParametrizacion
                cmd.Parameters.Add("@tituloParametrizacion", SqlDbType.VarChar, 55).Value = pParametrizacion.tituloParametrizacion
                cmd.Parameters.Add("@separacionMonto", SqlDbType.Decimal, 15, 2).Value = pParametrizacion.separacionMonto
                cmd.Parameters.Add("@descPorcentaje", SqlDbType.Decimal, 15, 2).Value = pParametrizacion.descPorcentaje
                cmd.Parameters.Add("@ctaInicPorcentaje", SqlDbType.Decimal, 15, 2).Value = pParametrizacion.ctaInicPorcentaje
                cmd.Parameters.Add("@ctaIniCuotas", SqlDbType.Int).Value = pParametrizacion.ctaIniCuotas
                cmd.Parameters.Add("@saldoCuotas", SqlDbType.Int).Value = pParametrizacion.saldoCuotas
                cmd.Parameters.Add("@Estado", SqlDbType.VarChar, 1).Value = pParametrizacion.Estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pParametrizacion.idUsuario
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pParametrizacion.idProyecto
                cmd.Parameters.Add("@idFormaPago", SqlDbType.Int).Value = pParametrizacion.idFormaPago
                cmd.Parameters.Add("@diasParaPago", SqlDbType.Int).Value = pParametrizacion.diasParaPago
                cmd.Parameters.Add("@idFinanciamiento", SqlDbType.Int).Value = pParametrizacion.idFinanciamiento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pParametrizacion As Eparametrizacion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_parametrizacion_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idParametrizacion", SqlDbType.Int).Value = pParametrizacion.idParametrizacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pParametrizacion.idUsuario
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pParametrizacion.idProyecto
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
